package com.flow.asyncflow.test.manager.asyncflowtest;

import com.flow.asyncflow.test.asyncflow.operatorenum.asyncflowtest.PlusAsyncFlowTestOperatorEnum;
import com.flow.asyncflow.test.asyncflow.model.plusasyncflowtest.PlusAsyncFlowTestRequest;
import com.flow.asyncflow.test.asyncflow.model.plusasyncflowtest.PlusAsyncFlowTestResponse;
import com.flow.asyncflow.test.asyncflow.context.plusasyncflowtest.PlusAsyncFlowTestContext;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.b_getdata.Test_Plus_2_GetData;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_2_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_3_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_4_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_5_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_6_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_7_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_8_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_PubFlowNode_2_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_PubFlowNode_1_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.TestTwo1Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.f_async.Test1Async;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.f_async.Test2Async;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.f_async.Test3Async;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_1_Operator;
import com.flow.asyncflow.test.execute.asyncflowtest.plusAsyncFlowTest.c_operater.Test_Plus_122_Operator;
import com.flow.asyncflow.core.annotation.FlowInfo;
import com.flow.asyncflow.core.core.AsyncFlowManager;
import com.flow.asyncflow.core.enums.ExecuteEnum;

import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;

/**
 * 测试异步流Plus
 *
 * @author 系统自动生成
 * @since 2024-03-11 20:03:33
 */
@Service
@FlowInfo(flowName = "测试异步流Plus",
        flowMaintainName = "07612",
        timeOutsLimit = 100)
@RequiredArgsConstructor
public class PlusAsyncFlowTestManager extends AsyncFlowManager<PlusAsyncFlowTestRequest, PlusAsyncFlowTestResponse, PlusAsyncFlowTestContext, PlusAsyncFlowTestOperatorEnum> {


    private final Test_Plus_2_GetData m_Test_Plus_2_GetData;


    private final Test_Plus_2_Operator m_Test_Plus_2_Operator;


    private final Test_Plus_3_Operator m_Test_Plus_3_Operator;


    private final Test_Plus_4_Operator m_Test_Plus_4_Operator;


    private final Test_Plus_5_Operator m_Test_Plus_5_Operator;


    private final Test_Plus_6_Operator m_Test_Plus_6_Operator;


    private final Test_Plus_7_Operator m_Test_Plus_7_Operator;


    private final Test_Plus_8_Operator m_Test_Plus_8_Operator;


    private final Test_Plus_PubFlowNode_2_Operator m_Test_Plus_PubFlowNode_2_Operator;


    private final Test_Plus_PubFlowNode_1_Operator m_Test_Plus_PubFlowNode_1_Operator;


    private final TestTwo1Operator m_TestTwo1Operator;


    private final Test1Async m_Test1Async;


    private final Test2Async m_Test2Async;


    private final Test3Async m_Test3Async;


    private final Test_Plus_1_Operator m_Test_Plus_1_Operator;


    private final Test_Plus_122_Operator m_Test_Plus_122_Operator;


    @Override
    protected void managerStartup() {


        addPlusAsyncFlowTest();//添加_升级版_操作节点

        addPlusAsyncFlowTestV2();//添加_升级版V2_操作节点
    }

    //region 添加_升级版_操作节点

    /**
     * 添加_升级版_操作节点
     */
    private void addPlusAsyncFlowTest() {
        addFlowNode(ExecuteEnum.GetData, m_Test_Plus_2_GetData, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus查询2
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_2_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作2
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_3_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作3
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_4_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作4
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_5_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//构建公共节点请求参数
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_6_Operator, false, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作6
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_7_Operator, false, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作7
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_8_Operator, false, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流Plus操作8
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_PubFlowNode_2_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流公共节操作点1
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_PubFlowNode_1_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//测试异步流公共节操作点1
        addFlowNode(ExecuteEnum.Operator, m_TestTwo1Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//11111
        addFlowNode(ExecuteEnum.Async, m_Test1Async, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//Test1
        addFlowNode(ExecuteEnum.Async, m_Test2Async, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//Test2
        addFlowNode(ExecuteEnum.Async, m_Test3Async, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTest);//Test3
    }
    //endregion
    //region 添加_升级版V2_操作节点

    /**
     * 添加_升级版V2_操作节点
     */
    private void addPlusAsyncFlowTestV2() {
        addFlowNode(ExecuteEnum.GetData, m_Test_Plus_2_GetData, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTestV2);//测试异步流Plus查询2
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_1_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTestV2);//测试异步流Plus操作1
        addFlowNode(ExecuteEnum.Operator, m_Test_Plus_122_Operator, true, PlusAsyncFlowTestOperatorEnum.PlusAsyncFlowTestV2);//测试异2222步流Plus操作1
    }
    //endregion


}
